1. Field of the Invention
The present invention relates to an apparatus for and a method of adaptive motion estimation, and more particularly to an adaptive motion estimation apparatus and method of adaptively selecting one of a full search motion estimation method and a prediction motion estimation method and estimating motion vectors according to the adaptively selected method.
2. Description of the Prior Art
Image data having multiple dimension characteristics has a greater amount of information that general data. A vast amount of data is required to represent visual images as digitized images. In order to process, store, and transfer such digital images, various transfer and storage media are available which use very large scale integration VLSI and signal processing technologies, but data compression technologies of a high compression ratio are required when considering bandwidths of communication paths needed for transferring the digitized images, storage capacities necessary for storing the digital images, etc.
High autocorrelations of image signals cause a redundancy in most occasions, so that effective data compressions are obtainable by removing such redundancy. In order to effectively compress time-varying video frames/fields, removal of the redundancy in the two-dimensional space and in the time-axis direction is required.
The removal of the redundancy in the time-axis direction is based on a concept that an amount of data to be transferred is greatly reduced by replacing unchanged portions or moved-but-still-similar portions in a current frame/field with corresponding portions in an immediately preceding frame/field, i.e., a reference frame/field.
To make the replacement, it is necessary to find the most similar block between the current frame/field and the reference frame/field, which is called a “motion estimation,” and an indication of an amount of displacement of the block, which is called a “motion vector.”
That is, the motion vector is two-dimensional information and indicates a motion amount in two-dimensional X-Y coordinates of an object which occurs between the reference frame/field and the current frame/field. Therefore, the motion vector is composed of a magnitude of the motion in a horizontal direction and a magnitude of the motion in a vertical direction.
Typical methods for estimating motion vectors are a Block Matching Algorithm (BMA) and a Pel Recursive Algorithm (PRA). The Block Matching Algorithm is generally used in consideration of precision, efficiency, real-time processing ability, hardware implementation, etc.
The Block Matching Algorithm compares two consecutive images such as the reference frame/field and the current frame/field by block unit and then estimates a motion based on a matching degree of corresponding signal patterns. In the Block Matching Algorithm, estimations and compensations are carried out by a certain size, that is by a unit of a set of M pixels in the horizontal direction and N pixels in the vertical direction. The pixel set is called a “macroblock” which is generally represented as M×N.
Using the Block Matching Algorithm and the like, a motion vector is estimated with reference to the current frame/field and the reference frame/field, and a motion compensation prediction is carried out by using the estimated motion vector.
FIG. 1 is a block diagram of a conventional full search motion estimation apparatus.
The conventional full search motion estimation apparatus shown in FIG. 1 has a reference frame/field storage part 10 a current frame/field storage part 12, and a full search motion estimation part 14.
The reference frame/field storage part 10 and the current frame/field storage part 12 store a current frame/field and a reference frame/field, respectively, to be used for the estimation of a motion vector.
The full search motion estimation part 14 estimates the motion vector by a full search algorithm by using the frame/field stored in the reference frame/field storage part 10 and the current frame/field storage part 12.
The full search algorithm defines a search range and selects as a motion vector a position of a block indicating a minimal matching error out of all the blocks possible within a maximum displacement of the search range. Since, within the search range, pattern matchings are carried out with all the blocks in the current frame/field and the reference frame/field, motion information of a very high precision may be found where an actual maximum motion of a block does not deviate from the search range.
FIG. 2 is a block diagram of a conventional prediction motion estimation apparatus.
The conventional prediction motion estimation apparatus of FIG. 2 has a reference frame/field storage part 20, a current frame/field storage part 22, a prediction motion estimation part 24, and a candidate vector generation part 30. The candidate vector generation part 30 has a candidate motion vector generator 32 and a motion vector storage 34.
The reference frame/field storage part 20 and the current frame/field storage part 22 store a current frame/field and a reference frame/field, respectively, to be used for the estimation of a motion vector.
The prediction motion estimation part 24 estimates a motion vector by a prediction motion estimation algorithm. Unlike the full search algorithm, the prediction motion estimation algorithm estimates a motion vector for ambient blocks about a block in which a candidate motion vector is estimated. The candidate motion vector is provided to the prediction motion estimation part from the candidate motion vector generation part 30. The candidate motion vector provided by the candidate vector generation part 30 is useable after a motion vector estimated by the prediction motion estimation part 24 is stored in the vector storage 34. An externally input motion vector is also useable.
The full search motion estimation apparatus has a problem of not estimating smooth motion vectors reflecting actual motions where a size of the block increases. In particular, the full search motion estimation apparatus is likely to search incorrect motion vectors where motion of an object exists on an edge of an image. In order for the full search motion estimation apparatus to estimate smooth motion vectors reflecting actual motions, the motion vectors should be obtained by lessening a block size or overlapping blocks, which causes a problem of calculations becoming more complicated.
The prediction motion estimation algorithm estimates smooth motion vectors reflecting actual motions more accurately than the full search algorithm, but the prediction motion estimation algorithm may generate a case where correct motion vectors are not searched, resulting in wrong motion vectors being used as candidate motion vectors. In such a case, since correct motion vectors are not used, a visual effect may be more deteriorated than the visual effect using methods in which motion information is not used.